"""
任务序号 ： 3795
任务要求：
    1.读取01_dava.csv文件 pandas.read_csv 方法还未实现
    2.数据转换成需要的数据
    3.数据拆分，如几室，几厅，几厨，所在楼层和高度---字段拆分的内容
    4.去掉重复值、异常值、缺失值、数据单位
    5.地区均价、房型统计、建筑面积分布、装修情况
"""

import pandas
import numpy

# todo 读取CSV文件
# * 路径从.vscode 这一层开始计算
# ? 注意编码格式，utf-8 gbk
df2 = pandas.read_csv(r'.\Exercise\2020-01-12\01_data.csv',
                      sep=',', encoding="gbk")
# * 删除多余的条目信息
labels_name = ['id', '户型结构', '建筑类型', '房屋朝向', '建筑结构', '梯户比例', '配备电梯',
               '产权年限', '挂牌时间', '交易权属', '房屋用途', '房屋年限', '产权所属', '套内面积',
               '抵押信息', '房本备件']
df = df2.drop(labels=labels_name, axis=1)


# print(df.head())

# todo 字段拆分 室、厅、厨、卫
df['室'] = df['房屋户型'].str.split('室')
df['厅'] = df['室'].str[1].str.split('厅')
df['厨'] = df['厅'].str[1].str.split('厨')
df['卫'] = df['厨'].str[1].str.split('卫')
df['室'] = df['室'].str[0]
df['厅'] = df['厅'].str[0]
df['厨'] = df['厨'].str[0]
df['卫'] = df['卫'].str[0]
# print(df.head())

# todo 字段拆分 楼层 高度
df['层'] = df['所在楼层'].str.split('(')
# * 去掉后面的 ）
df['楼高'] = df['层'].str[1].apply(lambda x: x[:-1])
df['层'] = df['层'].str[0]
# print(df.head())


# todo 去掉重复值、异常值、缺失值


# todo 地区均价
#  ? df['总价'].astype(int) 转换为int的格式
zongjia_jujia = df['总价'].astype(int).mean()
# print(zongjia_jujia)
# ? 单价和建筑面积掉单位
df['单价'] = df['单价'].apply(lambda x: x[:-4])
df['单价'] = df['单价'].astype(int)
df['建筑面积'] = df['建筑面积'].apply(lambda x: x[:-1])
df['建筑面积'] = df['建筑面积'].astype(float)
# * 地区单价均价
danjia_jujia = df['单价'].mean()
# print(danjia_jujia)

# todo 房型统计
fangxing_tongji = df.groupby(by=df['房屋户型']).agg({'房屋户型': numpy.size})
# print(fangxing_tongji)

# todo 建筑面积分布
# ? 分组统计
bins = [min(df['建筑面积']-1), 70, 120, max(df['建筑面积'])]
# print(bins)
labels = ['70以下', '70-120', '120以上']
mianji_fenzu = pandas.cut(df['建筑面积'], bins, labels=labels)
# ? 统计面积分布情况
mianji_fenbu = pandas.value_counts(mianji_fenzu)
# print(mianji_fenbu)

# todo 
# todo 装修情况
# ? 对相同的内容进行一个统计，计数
zhuangxiu = df.groupby(by=df['装修情况']).agg({'装修情况': numpy.size})
# print(zhuangxiu)

print(df.head())
